package com.ruoyi.dm.mapper;

import com.ruoyi.dm.domain.DataManagementParam;
import com.ruoyi.dm.domain.po.CollectTleRecordPO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface DataManagementMapper {

    void add(DataManagementParam dataManagementParam);

    public DataManagementParam getInfo(@Param("dataId") Long dataId);

    int isTable(@Param("tableName") String tableName);

    int isData(@Param("tableName") String tableName);

    void executeSql(@Param("sql") String sql);

    void saveTable(DataManagementParam dataManagementParam);

    List<DataManagementParam> selectList(DataManagementParam param);

    void edit(DataManagementParam param);

    List<DataManagementParam> getByIds(@Param("list") List<Long> list);

    void deleteByIds(@Param("list") List<Long> list);

    List<String> getCatalogList(@Param("parentId") Long parentId);

    int isDataSource(@Param("parentId") Long parentId, @Param("dataName") String dataName, @Param("dataSource") String dataSource);

    int isIndex(@Param("indexName") String indexName);

    void saveSatelliteInfo(@Param("dataSource")String dataSource, @Param("tableName")String tableName);

    void deleteSatelliteInfo(@Param("id")Long id, @Param("tableName")String tableName);

    Long getSatelliteId(@Param("id")Long id);

    void editSatelliteInfo(@Param("id")Long id, @Param("dataSource")String dataSource, @Param("tableName")String tableName);

    List<Map<String, Object>> getIndexData(@Param("tableName")String tableName,@Param("startTime")String startTime, @Param("endTime")String endTime);
    List<Map<String, Object>> getDensityData(@Param("tableName")String tableName,@Param("startTime")String startTime, @Param("endTime")String endTime);
    List<Map<String, Object>> getGNSSData(@Param("tableName")String tableName,@Param("startTime")String startTime, @Param("endTime")String endTime);
    List<Map<String, Object>> getATTIData(@Param("tableName")String tableName,@Param("startTime")String startTime, @Param("endTime")String endTime);
    List<Map<String, Object>> getStOrbitData(@Param("tableName")String tableName,
                                          @Param("startTime")String startTime,
                                          @Param("endTime")String endTime,
                                          @Param("sate")String sate
    );

    List<Map<String, Object>> getTleData(@Param("startTime")String startTime,
                                            @Param("endTime")String endTime,
                                            @Param("tleCode")String tleCode
    );


    void insertFuture(@Param("tableName")String tableName, @Param("DATETIME") Date DATETIME,@Param("Y107") Float Y107);
}
